package com.zyb.lmbackend.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * 应用级自定义配置项。
 * - RATE_LIMIT_QPS：LLM 请求速率限制
 * - CLASSIFY_MAX_TOKENS：分类批次的最大 token 预算（估算值）
 * - JWT_SECRET：验证前端传入 JWT 的对称密钥
 */
@Configuration
@ConfigurationProperties(prefix = "app")
@Data
public class AppProperties {
    private int RATE_LIMIT_QPS = 10;
    private long CLASSIFY_MAX_TOKENS = 1_000_000L;
    private String JWT_SECRET = "change-me";
    /**
     * 默认统计版本号：
     * - 当前端未显式传入 taskVersion，且未设置时间范围时，后端默认使用该版本号进行统计。
     * - 若未配置或小于等于 0，则回退为使用数据库中最大的版本号。
     * 这样做是因为如果大模型跑一半停了，此时yml文件设置版本为上一次能完成展示学习机数据的版本
     */
    private Integer DEFAULT_STATS_VERSION;
}
